package com.richard.arithmetic.Q1_palindromic_number;

/**
 * 方法二：
 * 使用StringBuffer中的reverse()方法，对字符串进行倒序输出
 * 使用string.contentEquals()方法对字符串进行对比。
 * @author Richard·Wang
 * @Date 2021/4/9 22:51
 * @Version 1.0
 */
public class Compare_02 {

    public void BString(){
        //利用StringBuilder
       int i = 11;

        while (true) {

            if (isRevserBySbuilder(String.valueOf(i)) &&
                    isRevserBySbuilder(Integer.toBinaryString(i)) &&
                    isRevserBySbuilder(Integer.toOctalString(i))) {
                System.out.println(i + ", base 2:" +
                        Integer.toBinaryString(i)
                        + ", base 8:"+Integer.toOctalString(i));
                break;
            }
            i++;
        }
    }
    /**
     * @param string
     * @return
     */
    private static boolean isRevserBySbuilder(String string) {
        StringBuilder stringBuilder = new StringBuilder(string);
        stringBuilder.reverse();
/**	if (stringBuilder.equals(string) ){}
 *	   StringBuilder里没有重写equals方法，equals不能比较对象的值，默认是比较对象地址。此方式不可以
 *	if (stringBuilder.toString().equals(string) ){}
 *	  此方式可以，stringBuilder转为string使用；
 *	  或用下面string.contentEquals()，string比较stringbuilder内容
 */
        if (string.contentEquals(stringBuilder)) {
            return true;
        }
        return false;
    }
}
